Loading TOC...

POST /manage/v2/databases/{id|name}/alert/actions/{id|name}/rules

Summary

This resource address creates a new rule for the specified alert action.

URL Parameters
uri The URI of the alert for which to create the rule. This parameter is required.
format The format of the data in the request body. Allowed values: html, json or xml (default). Use this parameter to override the Accept header.
Request Headers
Accept The expected MIME type of the request body. If the format? parameter is present, it takes precedence over the Accept header.
Content-type The MIME type of the data in the request body. Depending upon the value of the format parameter or Accept header, one of application/xml, application/json, or text/html.
Response Headers
Content-type The MIME type of the data in the response body. Depending upon the value of the format parameter or Accept header, one of application/xml, application/json, or text/html.
Location If the request causes a restart, a Location header is included in the reponse. The header contains a path with which to construct a URL to usable to test when the restart has completed.

Response

Upon success, MarkLogic Server returns status code 202 (Accepted). If the alert already exists or if the payload is malformed, a status code of 400 (Bad Request) is returned. A status code of 401 (Unauthorized) is returned if the user does not have the necessary privileges.

Required Privileges

This operation requires one of the following:

Usage Notes

The structure of the data in a create rule request is as shown below.

Note: The properties described here are for XML payloads. In general they are the same for JSON, with the exception that options is expressed in singular form.

name

description

user-id

query

action-name

external-security-id

user-name

options

Example


curl -X POST  --anyauth --user admin:admin --header "Content-Type:application/json" \
-d '{
  "name": "my-rule",
  "description": "log to ErrorLog.txt",
  "user-name": "manageadmin",
  "query": {
    "wordQuery": {
      "text": "Yorick"
    }
  },
  "action-name": "",
  "option": []
   }' \
http://localhost:8002/manage/v2/databases/Documents/alert/actions/xdmp:log2/rules?uri=my-alert-config

==>  Creates a new rule, named "my-rule", for the alert action, "xdmp:log2."
    

Example


curl -X POST  --anyauth --user admin:admin --header "Content-Type:application/json" \
-d '{
    "name": "my-query-rule",
    "description": "log to ErrorLog.txt",
    "user-name": "admin",
    "query": {
        "orQuery": {
            "queries": [
                {
                    "notQuery": {
                        "query": {
                            "collectionQuery": {
                                "uris": [
                                    "latest"
                                ]
                            }
                        }
                    }
                },
                {
                    "collectionQuery": {
                        "uris": [
                            "uni-temporal"
                        ]
                    }
                },
                {
                    "elementRangeQuery": {
                        "element": [
                            "systemEnd"
                        ],
                        "operator": ">",
                        "value": [
                            {
                                "type": "dateTime",
                                "val": "2021-12-01T00:00:00"
                            }
                        ]
                    }
                },
                {
                    "notQuery": {
                        "query": {
                            "collectionQuery": {
                                "uris": [
                                    "very good"
                                ]
                            }
                        }
                    }
                }
            ]
        }
    },
    "action-name": "",
    "option": []
}' \
http://localhost:8002/manage/v2/databases/Documents/alert/actions/xdmp:log2/rules?uri=my-alert-config

==>  Creates a new rule, named "my-query-rule", for the alert action, "xdmp:log2."
    

Example


curl -X POST  --anyauth --user admin:admin --header "Content-Type:application/xml" \
-d '<alert-rule-properties xmlns="http://marklogic.com/manage/alert-rule/properties">
    <name>my-query-rule</name>
    <description>Description for XML</description>
    <query>
        <cts:and-query xmlns:cts="http://marklogic.com/cts">
            <cts:not-query>
                <cts:collection-query>
                    <cts:uri>newest</cts:uri>
                </cts:collection-query>
            </cts:not-query>
            <cts:collection-query>
                <cts:uri>uni-temporal</cts:uri>
            </cts:collection-query>
            <cts:element-range-query operator="&gt;">
                <cts:element>systemEnd</cts:element>
                <cts:value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2021-12-01T00:00:00</cts:value>
            </cts:element-range-query>
        </cts:and-query>
    </query>
</alert-rule-properties>' \
http://localhost:8002/manage/v2/databases/Documents/alert/actions/xdmp:log2/rules?uri=my-alert-config

==>  Creates a new rule with input of XML, named "my-query-rule", for the alert action, "xdmp:log2."
    

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.